iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
Software Development

Qt 6 跨平台應用程式開發系列 第 26

D26: Qt 讀寫 JSON 檔案

  • 分享至 

  • xImage
  •  

作為當代最重要的文字檔案交換格式之一,JSON 檔案的處理自然也是很 Qt 核心的一環。

今天就來介紹該怎麼操作 JSON 檔案。

引入必要的模組

要在 Qt 中使用 JSON 功能,你首先需要引入相關的模組。打開你的 .pro 檔案並加入:

QT += core

確保你已經包含了核心模組。接著,在你的程式碼中引入下列標頭檔:

#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>

讀取 JSON 檔案

我們先從讀取 JSON 檔案開始:

QFile loadFile("path/to/your/file.json");
if (!loadFile.open(QIODevice::ReadOnly)) {
    qWarning("Failed to open load file.");
    return;
}
QByteArray jsonData = loadFile.readAll();
loadFile.close();

QJsonDocument jsonDoc(QJsonDocument::fromJson(jsonData));
QJsonObject jsonObj = jsonDoc.object();

上述程式碼首先嘗試打開一個 JSON 檔案,讀取其內容,然後將其解析為 QJsonObject。

寫入 JSON 檔案

一旦你修改了 JSON 物件,你可能希望將其寫回檔案:

QFile saveFile("path/to/your/file.json");
if (!saveFile.open(QIODevice::WriteOnly)) {
    qWarning("Failed to open save file.");
    return;
}
QJsonDocument saveDoc(jsonObj);
saveFile.write(saveDoc.toJson());
saveFile.close();

操作 JSON 物件和陣列

在 Qt 中,QJsonObject 和 QJsonArray 提供了許多方便的方法來讀取和修改 JSON 內容。

舉例來說,從 JSON 物件中取得值:

QString name = jsonObj["name"].toString();
int age = jsonObj["age"].toInt();

新增或修改值:

jsonObj["name"] = "新的名稱";
jsonObj["age"] = 30;

操作陣列

QJsonArray jsonArray = jsonObj["hobbies"].toArray();
for (int i = 0; i < jsonArray.size(); i++) {
    QString hobby = jsonArray[i].toString();
    qDebug() << hobby;
}

到此,我們已經介紹了 Qt 中基本的 JSON 操作。可以便利地讀取、修改和保存 JSON 資料。


上一篇
D25: Qt 檔案內容處理
下一篇
D27: Qt 發出網路請求
系列文
Qt 6 跨平台應用程式開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言